package com.ruoyi.project.infoBaseProjectStatist.service;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.project.infoBaseProjectStatist.domain.InfoBaseProjectStatist;

import java.util.List;
import java.util.Map;


/**
 * 项目数据统计Service接口
 *
 * @author ruoyi
 * @date 2022-03-18
 */
public interface IInfoBaseProjectStatistService {

    /**
     * 查询项目数据统计
     *
     * @param id 项目数据统计主键
     * @return 项目数据统计
     */
    public InfoBaseProjectStatist selectInfoBaseProjectStatistById(Long id);

    /**
     * 查询项目数据统计列表
     *
     * @param infoBaseProjectStatist 项目数据统计
     * @return 项目数据统计集合
     */
    public List<InfoBaseProjectStatist> selectInfoBaseProjectStatistList(InfoBaseProjectStatist infoBaseProjectStatist);

    /**
     * 新增项目数据统计
     *
     * @param infoBaseProjectStatist 项目数据统计
     * @return 结果
     */
    public int insertInfoBaseProjectStatist(InfoBaseProjectStatist infoBaseProjectStatist);

    /**
     * 修改项目数据统计
     *
     * @param infoBaseProjectStatist 项目数据统计
     * @return 结果
     */
    public int updateInfoBaseProjectStatist(InfoBaseProjectStatist infoBaseProjectStatist);

    /**
     * 批量删除项目数据统计
     *
     * @param ids 需要删除的项目数据统计主键集合
     * @return 结果
     */
    public int deleteInfoBaseProjectStatistByIds(Long[] ids);

    /**
     * 删除项目数据统计信息
     *
     * @param id 项目数据统计主键
     * @return 结果
     */
    public int deleteInfoBaseProjectStatistById(Long id);

    List<InfoBaseProjectStatist> selectInfoBaseProjectStatistLists(Long deptId);

    /**
     * 一级项目统计
     *
     * @param
     * @return 结果
     */
    List<Map<String,Object>> getProjectStatistics(JSONObject jsonObject);

    /**
     * 二级项目统计
     *
     * @param
     * @return 结果
     */
    List<Map<String,Object>> getSecondProjectStatistics(Integer parentProjectId);


    InfoBaseProjectStatist selectByid(Long id,String startTime,String lastTime);


    InfoBaseProjectStatist selectTotal();


    Map<String, Object> selectSs(Long id);

    /**
     * 统计功能（项目信息按地区统计）
     * @param id
     * @return
     */
    List<Map<String, Object>> getRegionProject(Long id,String startTime,String lastTime);
}
